#ifdef GL_ES
precision mediump float;
#endif

#define PI 3.14159265359

uniform vec2 u_resolution;
uniform float u_time;

float plot(vec2 st,float pct){
    return smoothstep(pct-.02,pct,st.y)-
    smoothstep(pct,pct+.02,st.y);
}

void main(){
    vec2 st=gl_FragCoord.xy/u_resolution;
    
    // Step will return 0.0 unless the value is over 0.5,
    // in that case it will return 1.0
    // st.x > 0.5 = 1.0; st.x < 0.5 = 0.0
    // float y = step(0.5,st.x);
    // st.x > 0.9 = 1.0; st.x < 0.1 = 0.0; 0.9 > st.x > 0.1 是 0.0到1.0的渐变
    float y=smoothstep(.2,.5,st.x)-smoothstep(.5,.8,st.x);
    
    vec3 color=vec3(y);
    
    float pct=plot(st,y);
    color=(1.-pct)*color+pct*vec3(0.,1.,0.);
    
    gl_FragColor=vec4(color,1.);
}
